package modelo;

import java.io.*;

public class ManejoArchivo{
    
	public static void merge(String pathEscritura, String pathObjetos, String pathNivel, String pathJugador){
        FileWriter fichero;
        PrintWriter pw;
        File archivo;
	    FileReader fr;
	    BufferedReader br;
        
	    try
        {
            String linea;
            fichero = new FileWriter(pathEscritura);
            pw = new PrintWriter(fichero);
            
            /* lee el archivo Objetos*/
            archivo = new File (pathObjetos);
	        fr = new FileReader (archivo);
	        br = new BufferedReader(fr);
                       
            while( (linea = br.readLine())!= null) pw.println(linea);
            
	        /*lee el archivo Nivel*/
         	fr.close();
         	br.close();
	        archivo.delete();
	        archivo = new File (pathNivel);
		    fr = new FileReader (archivo);
		    br = new BufferedReader(fr);
		        
		    while((linea=br.readLine())!=null) pw.println(linea);
		        
		    /*lee el archivo Jugador*/
	        fr.close();
	        br.close();
	        archivo.delete();
		    archivo = new File (pathJugador);
			fr = new FileReader (archivo);
			br = new BufferedReader(fr);
			while((linea=br.readLine())!=null)	 pw.println(linea);
		    fr.close();
		    br.close();
		    archivo.delete();
			        
			fichero.close();
			  
        } catch (Exception e) {
        	System.out.println("Error al guardar la partida");
            e.printStackTrace();
        }
    }

	public static void partirArchivo(String pathLectura, String pathObjetos, String pathNivel, String pathJugador){
		
		FileWriter fichero = null;
        PrintWriter pw;
        File archivo;
	    FileReader fr;
	    BufferedReader br;
		
		try {
		    fichero = new FileWriter(pathObjetos);
	        pw = new PrintWriter(fichero);
	        String linea;
	        
	        /* escribe el archivo Objetos*/
	        archivo = new File (pathLectura);
	        fr = new FileReader (archivo);
	        br = new BufferedReader(fr);
	        
	        while( !(linea = br.readLine()).matches("</list>")) pw.println(linea);
	        pw.println(linea);
	        pw.close();
	        fichero.close();
	
	        fichero = new FileWriter(pathNivel);
	        pw = new PrintWriter(fichero);
	        /* escribe el archivo Objetos*/
	        archivo = new File (pathNivel);
	
	        while(!(linea = br.readLine()).matches("</CambioNivel>")) pw.println(linea);
	        pw.println(linea);
	        pw.close();
	        fichero.close();
	
	
	        fichero = new FileWriter(pathJugador);
	        pw = new PrintWriter(fichero);
	          /* escribe el archivo Objetos*/
	        archivo = new File (pathJugador);
	
	        while(!(linea = br.readLine()).matches("</Jugador>")) pw.println(linea);
	        pw.println(linea);
	        fr.close();
	        br.close();
	        pw.close();
	        fichero.close();
	        
	        cleanOnExit(pathObjetos, pathNivel, pathJugador);
	              
		} catch (Exception e) {
			System.out.println("Error al cargar la partida");
	        e.printStackTrace();
		}     
	}
	
	public static void cleanOnExit(String pathObjetos, String pathNivel, String pathJugador){
		File archivo = new File (pathObjetos);
		archivo.deleteOnExit();
        archivo = new File (pathNivel);
		archivo.deleteOnExit();
        archivo = new File (pathJugador);
		archivo.deleteOnExit();
	}
}
	